package com.hn.project.rqinspect.service;

import com.hn.project.rqinspect.domain.database.TaskCheckChangeRecord;
import com.hn.project.rqinspect.domain.database.TaskCheckRecord;
import com.hn.project.rqinspect.domain.dto.*;
import com.hn.project.rqinspect.domain.vo.TaskCheckChangeRecordVo;
import com.hn.project.rqinspect.domain.vo.TaskCheckRecordVo;
import com.hn.project.rqinspect.domain.vo.TaskRecordVo;

import java.util.List;

public interface TaskCheckService {

    /**
     *  查询任务记录下的评价记录
     * @param taskRecordVo  taskRecordVo
     * @return
     */
    List<TaskCheckRecordDto> listCheckRecordDto(TaskCheckRecordVo taskCheckRecordVo);

    /**
     *  新增评价记录
     * @param taskCheckRecord
     * @return
     */
    int addCheckRecord(TaskCheckRecord taskCheckRecord);

    /**
     *  更新评价
     * @param taskCheckRecord
     * @return
     */
    int updateCheckRecord(TaskCheckRecord taskCheckRecord);

    /**
     *  查询评价记录
     * @param checkRecordId
     * @return
     */
    TaskCheckRecordDto getCheckRecordDto(Integer checkRecordId);

    /**
     *  删除评价
     * @param checkRecordId
     * @return
     */
    int delCheckRecord(Integer checkRecordId);

    /**
     *  根据任务记录id删除评价
     */
    int delByTaskRecordId(Integer taskRecordId);

    /**
     * 新增整改记录
     */
    int addChangeRecord(TaskCheckChangeRecord checkChangeRecord);

    /**
     * 审核整改记录
     */
    int auditChangeRecord(TaskCheckChangeRecordVo taskCheckChangeRecordVo);

    /**
     *  整改问题记录
     */
    List<TaskQuesCheckRecordDto> listAuditCheckRecord(Integer userId, Integer auditStatus);

    /**
     *  整改问题记录详情
     */
    TaskQuesCheckRecordDetailDto checkRecordDetail(Integer checkRecordId);

    /**
     *  根据网点id查询有问题的检查记录
     */
    List<QuesCheckRecordDto> listQuesCheckRecord(Integer branchId);

    /**
     * 我查询的问题统计
     */
    QuesCheckRecordNumDto countQuesCheckRecord(Integer type,Integer taskType);

    List<QuesCheckRecordDto> listQuesCheckRecord(Integer type, Integer taskType,Integer followStatus);

    /**
     *  待办事宜 或 安全巡检备忘录
     *  1=巡检干部 2=网点负责人 3=系统管理员
     */
    CountCheckMemo countCheckMemo(Integer type,Integer userId);

    /**
     *  巡检中心统计
     *  1=巡检干部 2=网点负责人 3=系统管理员
     */
    CountCheckCenter countCheckCenter(Integer type,Integer userId);
}
